import {defineStore} from 'pinia'

// 对外部暴露一个 use 方法，该方法会导出我们定义的 state
export const userStore = defineStore({
    // 每个 store 的 id 必须唯一
    id: 'useStore',
    // state 表示数据源
    state: () => ({
        loginFlag: false,
        phone: '',
        address: '',
        username: '',
        userId: '',
        status: '',
        userInfo: {}
    }),
    persist: {
        enabled: true, //开启存储
        // storage:sessionStorage/localStorage,还可以自定义存入对应的如下
        //不写以下也可以 默认是sessionStorage
        strategies: [
            // { storage: localStorage, paths: ['info'] }
            // { storage: sessionStorage, paths: ['info'] }
        ],
    },
    // getters 类似于 computed，可对 state 的值进行二次计算
    getters: {
        // 如果使用箭头函数会导致 this 指向有问题
        // 可以在函数的第一个参数中拿到 state
        //   double: (state) => {
        //       return state.count * 2
        //     }
        getPhone: (state) => {
            return state.phone;
        },
        getLoginFlag: (state) => {
            return state.loginFlag
        }

    },
    // actions 用来修改 state
    actions: {
        setPhone(phoneNum: string) {
            this.phone = phoneNum;
        },
        setLoginFlag(flag: boolean) {
            this.loginFlag = flag
        }

    }
});


